cabal-version:         2.2
name:                  finitary-derive
-- PVP summary:        +-+------- breaking API changes
--                     | | +----- non-breaking API additions
--                     | | | +--- code changes with no API change
version:               2.2.0.0
synopsis:              Flexible and easy deriving of type classes for finitary
                       types.
description:           Provides a collection of wrappers, allowing you to easily
                       define (among others) Unbox, Storable, Hashable and
                       Binary instances for finitary types with flexibility in
                       terms of representation and efficiency. Never write an
                       Unbox instance by hand again!
homepage:              https://notabug.org/koz.ross/finitary-derive
license:               GPL-3.0-or-later
license-file:          LICENSE.md
author:                Koz Ross
maintainer:            koz.ross@retro-freedom.nz
copyright:             (C) Koz Ross 2019
category:              Data
tested-with:           GHC == 8.4.4,
                       GHC == 8.6.5,
                       GHC == 8.8.1
build-type:            Simple
extra-source-files:    CHANGELOG.md,
                       README.md

library
  exposed-modules:     Data.Finitary.Finiteness,
                       Data.Finitary.PackBits,
                       Data.Finitary.PackBits.Unsafe,
                       Data.Finitary.PackBytes,
                       Data.Finitary.PackWords,
                       Data.Finitary.PackInto
  build-depends:       base >= 4.11 && < 4.14,
                       finitary >= 1.2.0.0 && < 1.3.0.0,
                       vector >= 0.12.0.3 && < 0.13.0.0,
                       coercible-utils >= 0.0.0 && < 0.1.0,
                       finite-typelits >= 0.1.4.2 && < 0.2.0.0,
                       binary >= 0.8.5.1 && < 0.9.0.0,
                       deepseq >= 1.4.3.0 && < 1.5.0.0,
                       hashable >= 1.3.0.0 && < 1.4.0.0,
                       ghc-typelits-extra >= 0.3.1 && < 0.4.0,
                       ghc-typelits-knownnat >= 0.7 && < 0.8,
                       vector-instances >= 3.4 && < 3.5,
                       transformers >= 0.5.5.0 && < 0.6.0.0,
                       bitvec >= 1.0.2.0 && < 1.1.0.0,
                       vector-binary-instances >= 0.2.5.1 && < 0.3.0.0
  hs-source-dirs:      src
  default-language:    Haskell2010

test-suite tests
  type:                exitcode-stdio-1.0
  main-is:             Main.hs
  ghc-options:         -O2 -threaded -rtsopts -with-rtsopts=-N
  hs-source-dirs:      test
  build-depends:       base >= 4.12 && < 4.14,
                       hedgehog >= 1.0.1 && < 1.1,
                       hedgehog-classes >= 0.2.4 && < 0.3.0,
                       finitary-derive,
                       finitary,
                       finite-typelits,
                       hashable,
                       binary,
                       deepseq
  default-language:    Haskell2010
